package com.gxa.customer.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gxa.common.pojo.MerchantSea;
import com.gxa.common.pojo.Province;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Repository
public interface MerchantMapper extends BaseMapper<MerchantSea> {
    //查询所有商海信息(分页)
    List<Map<String, Object>> selectAllMercahnt(@Param("current") Integer current, @Param("limit") Integer limit);

    //查询所有商海信息总条数
    int selectAllMercahntCount();

    //查询具体商海详情
    Map<String, Object> selectMerchantById(@Param("merchantSeaTableId") Long merchantSeaTableId);

    //查询国家对应的商海信息(分页)
    List<Map<String, Object>> selectMerchantByCountryId(@Param("countryId") Long countryId, @Param("current") Integer current, @Param("limit") Integer limit);

    //查询国家对应的商海信息总条数
    int selectMerchantByCountryIdCount(@Param("countryId") Long countryId);

    //根据国家和地区查询商海信息（分页）
    List<Map<String, Object>> selectMerchantByCountryIdAndProvinceId(@Param("countryId") Long countryId, @Param("provinceId") Long provinceId, @Param("current") Integer current, @Param("limit") Integer limit);

    //根据国家和地区查询商海信息总条数
    int selectMerchantByCountryIdAndProvinceIdCount(@Param("countryId") Long countryId, @Param("provinceId") Long provinceId);

    //根据行业类型查询商海信息(分页)
    List<Map<String, Object>> selectMerchantByIndustryId(@Param("industryId") Long industryId, @Param("current") Integer current, @Param("limit") Integer limit);

    //根据行业类型查询商海信息总条数
    int selectMerchantByIndustryIdCount(@Param("industryId") Long industryId);

    //根据商海id查询商海对应的所有申请用户(分页)
    List<Map<String, Object>> selectAllUserByMerchantId(@Param("merchantSeaTableId") Long merchantSeaTableId, @Param("current") Integer current, @Param("limit") Integer limit);

    //根据商海id查询商海对应的所有申请用户总条数
    int selectAllUserByMerchantIdCount(@Param("merchantSeaTableId") Long merchantSeaTableId);

    //查询所有商海信息（按照浏览量倒序排序-app）
    List<Map<String, Object>> selectAllMerchantByPageView();

    //app-查询具体商海详情
    Map<String,Object> selectMerchantInformation(@Param("id") Long id,@Param("merchantSeaTableId") Long merchantSeaTableId);

    //app-添加每点击一次添加一次浏览量
    int addPageView(@Param("merchantSeaTableId") Long merchantSeaTableId);

    //app-申请新增信息
    //1、根据用户id和商海id查询是否在中间表中存在
    int selectByUserIdAndMerchantId(@Param("id") Long id, @Param("merchantSeaTableId") Long merchantSeaTableId);
    //2.1 若存在，添加数据
    int addApplyInformation(@Param("id") Long id,@Param("appUserTrueName") String appUserTrueName,@Param("phone") String phone,@Param("notes") String notes);
    //2.2 修改申请状态
    int updateApplyStatus(@Param("id")Long id,@Param("merchantSeaTableId") Long merchantSeaTableId,@Param("setTime") String setTime);
    //3、若不存在，3.1 添加数据...
    //3.2 中间表添加id数据
    int addIdInformation(@Param("id") Long id, @Param("merchantSeaTableId") Long merchantSeaTableId);
    //3.3 并更新收藏状态...

    //app-收藏状态修改
    //1、根据用户id和商海id查询是否在中间表中存在
    //2、若存在，修改收藏状态
    int updateCollectStatus(@Param("id") Long id,@Param("merchantSeaTableId") Long merchantSeaTableId,@Param("collectStatus") Integer collectStatus);
    //3、若不存在，添加id信息，并修改收藏状态

    //app-查询国家对应的省份信息
    List<Map<String,Object>> selectProvinceByCountryId(@Param("countryId") Long countryId);

    //app-查询国家对应的商海信息
    List<Map<String, Object>> selectAllMerchantAPP(@Param("countryId") Long countryId);

    //app-查询国家和省份对应的商海信息
    List<Map<String,Object>> selectMerchantByCountryIdAndProvinceIdAPP(@Param("countryId") Long countryId,@Param("provinceId") Long provinceId);


    }
